home *** CD-ROM | disk | FTP | other *** search
/ Macworld Expo - Develope…Central & Net Innovations / Developer Central and Net Innovators (MacWorld Expo) (January 1999).iso / Developer Central / Bowers Development / Demo AppMaker / Examples / C⁄C++ OS8 / Everything / ModalText.cp < prev    next >
Encoding:
Text File  |  1998-09-06  |  3.6 KB  |  155 lines  |  [TEXT/CWIE]

  1. // ModalText.cp -- Modal dialog
  2.  
  3. #include <Types.h>
  4. #include <Quickdraw.h>
  5. #include <Controls.h>
  6. #include <Dialogs.h>
  7. #include <Events.h>
  8. #include <Lists.h>
  9. #include <Menus.h>
  10. #include <TextEdit.h>
  11. #include <Appearance.h>
  12.  
  13. #include "ResourceDefs.h"
  14. #include "Miscellany.h"
  15. #include "ControlUtils.h"
  16.  
  17. #include "ModalText.h"
  18.  
  19. #define kOKButton        1
  20. #define kSmallField        2
  21. #define kLargeField        3
  22. #define kX12345Field        4
  23. #define kX12345e6Field        5
  24. #define kPasswordField        6
  25. #define kDateField        7
  26. #define kTimeField        8
  27. #define kStyledField        9
  28.  
  29.  
  30. //----------
  31. // static
  32. Boolean        CModalText::GetModalText (
  33.     DModalTextData*        ioData)
  34. {
  35.     Boolean            result = false;
  36.     CModalText*        dialog = new CModalText;
  37.  
  38.     result = dialog->RunModal (DLOG_ModalText, ioData);
  39.  
  40.     delete dialog;
  41.  
  42.     return result;
  43. }
  44.  
  45. //----------
  46. CModalText::CModalText ()
  47. {
  48.     mData = nil;
  49. }
  50.  
  51. //----------
  52. CModalText::~CModalText ()
  53. {
  54. }
  55.  
  56. //----------
  57. void    CModalText::FinishMake ()
  58. {
  59.     mOKHandle = GetControlItem (kOKButton);
  60.     SetDefaultState (mOKHandle, true);
  61.     ::SetDialogDefaultItem (mDialog, kOKButton);
  62.     mSmallHandle = GetControlItem (kSmallField);
  63.     mLargeHandle = GetControlItem (kLargeField);
  64.     mX12345Handle = GetControlItem (kX12345Field);
  65.     mX12345e6Handle = GetControlItem (kX12345e6Field);
  66.     mPasswordHandle = GetControlItem (kPasswordField);
  67.     mDateHandle = GetControlItem (kDateField);
  68.     mTimeHandle = GetControlItem (kTimeField);
  69.     mStyledHandle = GetControlItem (kStyledField);
  70. }
  71.  
  72. //----------
  73. void    CModalText::ConnectToData (
  74.     AMSignaler*        inData)
  75. {
  76.     AMDialog::ConnectToData (inData);
  77.     mData = (DModalTextData*) inData;
  78.  
  79.     SetControlText (mSmallHandle, mData->GetSmall2 ());
  80.     SetControlText (mLargeHandle, mData->GetLarge2 ());
  81.     SetControlTextValue (mX12345Handle, mData->GetX12346 ());
  82.     SetControlTextFloat (mX12345e6Handle, mData->GetX12345e7 ());
  83.     SetControlText (mPasswordHandle, mData->GetPassword2 ());
  84.     SetClockDateTime (mDateHandle, mData->GetDate2 ());
  85.     SetClockDateTime (mTimeHandle, mData->GetTime2 ());
  86.     SetControlText (mStyledHandle, mData->GetStyled2 ());
  87. }
  88.  
  89. //----------
  90. void    CModalText::DataChanged (
  91.     long        inDataID)
  92. {
  93.     if (inDataID == idSmall2) {
  94.         SetControlText (mSmallHandle, mData->GetSmall2 ());
  95.     }
  96.     if (inDataID == idLarge2) {
  97.         SetControlText (mLargeHandle, mData->GetLarge2 ());
  98.     }
  99.     if (inDataID == idX12346) {
  100.         SetControlTextValue (mX12345Handle, mData->GetX12346 ());
  101.     }
  102.     if (inDataID == idX12345e7) {
  103.         SetControlTextFloat (mX12345e6Handle, mData->GetX12345e7 ());
  104.     }
  105.     if (inDataID == idPassword2) {
  106.         SetControlText (mPasswordHandle, mData->GetPassword2 ());
  107.     }
  108.     if (inDataID == idDate2) {
  109.         SetClockDateTime (mDateHandle, mData->GetDate2 ());
  110.     }
  111.     if (inDataID == idTime2) {
  112.         SetClockDateTime (mTimeHandle, mData->GetTime2 ());
  113.     }
  114.     if (inDataID == idStyled2) {
  115.         SetControlText (mStyledHandle, mData->GetStyled2 ());
  116.     }
  117. }
  118.  
  119.  
  120. //----------
  121. void    CModalText::DoItem (
  122.     SInt16        inItemHit)
  123. {
  124.     switch (inItemHit) {
  125.     case kOKButton:
  126.             SetResult (true);
  127.         break;
  128.     case kSmallField:
  129.             mData->SetSmall2 (GetEditTextChars (mSmallHandle));
  130.         break;
  131.     case kLargeField:
  132.             mData->SetLarge2 (GetEditTextChars (mLargeHandle));
  133.         break;
  134.     case kX12345Field:
  135.             mData->SetX12346 (GetControlTextValue (mX12345Handle));
  136.         break;
  137.     case kX12345e6Field:
  138.             mData->SetX12345e7 (GetControlTextFloat (mX12345e6Handle));
  139.         break;
  140.     case kPasswordField:
  141.             mData->SetPassword2 (GetEditTextChars (mPasswordHandle));
  142.         break;
  143.     case kDateField:
  144.             mData->SetDate2 (GetClockDateTime (mDateHandle));
  145.         break;
  146.     case kTimeField:
  147.             mData->SetTime2 (GetClockDateTime (mTimeHandle));
  148.         break;
  149.     case kStyledField:
  150.             mData->SetStyled2 (GetEditTextChars (mStyledHandle));
  151.         break;
  152.  
  153.     } // switch
  154. }
  155.